#ifdef REAL64
#define sgesv dgesv
#define cgesv zgesv
#endif
submodule(fffc_linalg) fffc_linalg_solve
contains

    module procedure solve_real_kind
    integer :: ipiv(size(a, 1)), info

    call sgesv(size(a, 1), size(b, 2), a, size(a, 1), ipiv, b, size(b, 1), info)

    end procedure solve_real_kind

    module procedure solve_complex_kind
    integer :: ipiv(size(a, 1)), info

    call cgesv(size(a, 1), size(b, 2), a, size(a, 1), ipiv, b, size(b, 1), info)

    end procedure solve_complex_kind

end submodule fffc_linalg_solve
